// 权限拦截在路由跳转  导航守卫

import router from '@/router'
import store from '@/store' //引入 store 实例，和组件中的 this.store 是一回事
import NProgress from 'nprogress' // 引入一份进度条插件
import 'nprogress/nprogress.css' // 引入进度条样式

// 因为在 main 中已经引入，所以这边不需要再次导出，只需要让代码执行即可

// 导航的前置守卫
// next是前置守卫必须必须必须执行的钩子next必须执行如果不执行页面就死了
// next()放行
// next(false)跳转终止
// next(地址)跳转到某个地址
// const whiteList = ['/login', '/404'] // 定义的白名单
// router.beforeEach((to, from, next) => {
//   NProgress.start() // 开启进度条
//   if (store.getters.token) {
//     //   如果有 token
//     if (to.path === '/login') {
//       // 如果访问的是登录页
//       next('/') // 跳到主页
//     } else {
//       next()
//     }
//   } else {
//     // 如果没有 token
//     // 判断是否是在白名单
//     if (whiteList.indexOf(to.path) > -1) {
//       // 表示要去的地址在白名单
//       next()
//     } else {
//       // 如果既不在白名单，也没有 token 则跳到 login 页面
//       next('/login')
//     }
//   }
//   NProgress.done() // 手动强制关闭一次  为了解决 手动切换地址时  进度条的不关闭的问题
// })

// // 导航的后置守卫
// router.afterEach(() => {
//   NProgress.done() // 关闭进度条
// })
